package com.example.demo.huawei;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;

/**
 * 元音字母 aoeiu
 */
public class Main43 {
//    public static void main(String[] args) {
//        Scanner sc = new Scanner(System.in);
//        int flow = sc.nextInt();
//        sc.nextLine();
//        String
//                s = sc.nextLine();
//        //0
//        //asdbuiodevauufgh
//        //        System.out.println(s);
//        int left = 0;
//        int right = 1;
//        int maxLength = 0;
//
//        int temp = 0;
//        while (right < s.length()) {
//            if (!isYuanYin(s.charAt(left))) {
//                left++;
//                right = left + 1;
//            } else {
//                if (isYuanYin(s.charAt(right))) {
//                    maxLength = Math.max(maxLength, right - left);
//                } else {
//                    temp++;
//                    right++;
//                    temp--;
//                }
//            }
//        }
//
//        System.out.println(maxLength);
//    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // 输入瑕疵度
        int flaw = scanner.nextInt();
        scanner.nextLine(); // 读取换行符
        // 输入字符串
        String s = scanner.nextLine();
        // 定义元音字母集合
        Set<Character> vowels = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'));
        // 记录字符串中所有元音字母的下标
        List<Integer> vowelIdxs = new ArrayList<>();
        for (int i = 0; i < s.length(); i++) {
            if (vowels.contains(s.charAt(i))) {
                vowelIdxs.add(i);
            }
        }
        // 初始化双指针
        int left = 0, right = 0;
        // 记录所有满足瑕疵度的元音子串的长度
        List<Integer> lengths = new ArrayList<>();
        while (right < vowelIdxs.size()) {
            // 计算当前子串的瑕疵度
            int lengthDiff = vowelIdxs.get(right) - vowelIdxs.get(left) - (right - left);
            if (lengthDiff > flaw) {
                // 如果瑕疵度超过了预期，左指针右移
                left++;
            } else {
                // 如果瑕疵度不超过预期，记录子串长度
                if (lengthDiff == flaw) {
                    lengths.add(vowelIdxs.get(right) - vowelIdxs.get(left) + 1);
                }
                // 右指针右移
                right++;
            }
        }
        // 如果没有满足瑕疵度的元音子串，输出 0
        if (lengths.isEmpty()) {
            System.out.println(0);
            return;
        }
        // 输出最长的元音子串的长度
        Collections.sort(lengths, Collections.reverseOrder());
        System.out.println(lengths.get(0));
    }


    private static boolean isYuanYin(char a) {
        return "aeiouAEIOU".indexOf(a) != -1;
    }
}
